﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PhongMachTu.OConnection;
using PhongMachTu.OModel;

namespace PhongMachTu.OForm
{
    public partial class FormCreatePatient : Form
    {
        public FormCreatePatient()
        {
            InitializeComponent();
        }

        private void btnAddPa_Click(object sender, EventArgs e)
        {
            if (OSession.isLoggedIn())
            {
                if (txtFullname.Text == "")
                {
                    MessageBox.Show("Chưa nhập tên");
                }
                else if (!rbMale.Checked && !rbFemale.Checked)
                {
                    MessageBox.Show("Chưa chọn giới tính");
                }
                else if (txtBirthYear.Text == "")
                {
                    MessageBox.Show("Chưa nhập năm sinh");
                }
                else if (txtAddress.Text == "")
                {
                    MessageBox.Show("Chưa nhập địa chỉ");
                }
                else
                {
                    if (double.Parse(DataManipulate.getNumOfPa().ToString()) >= DataManipulate.getSettingMaxPatient()._value)
                    {
                        MessageBox.Show("Đã quá số bệnh nhân tối đa trong ngày. Không thể thêm bệnh nhân!");
                    }
                    else
                    {
                        int birthyear = int.Parse(txtBirthYear.Text);
                        string fullname = txtFullname.Text;
                        string address = txtAddress.Text;
                        bool gender;
                        if (rbMale.Checked)
                        {
                            gender = true;
                        }
                        else
                        {
                            gender = false;
                        }
                        if (DataManipulate.checkPaInfo(fullname, address, gender, birthyear))
                        {
                            MessageBox.Show("Thông tin bệnh nhân đã tồn tại.");
                        }
                        else
                        {
                            bool result = DataManipulate.addPatient(fullname, address, gender, birthyear);
                            if (result)
                            {
                                int r = DataManipulate.getPaID(fullname, address, gender, birthyear);
                                if (r > 0)
                                {
                                    DataManipulate.saveVisit(r);
                                    MessageBox.Show("Thêm bệnh nhân thành công !");
                                    FormManager.paInDayForm.Show();
                                    FormManager.paInDayForm.Patients = DataManipulate.getPatientInDay();
                                    FormManager.paInDayForm.loadData();
                                    FormManager.createPaForm.Hide();
                                }
                                else
                                {
                                    MessageBox.Show("Đã xảy ra lổi trong quá trình thêm bệnh nhân vào danh sách khám trong ngày. Thử lại bằng cách tìm bệnh nhân.", "Lỗi");
                                }
                            }
                            else
                            {
                                MessageBox.Show("Thêm thất bại. Vui lòng thử lại!", "Lỗi");
                            }
                        }
                    }
                }
            }
            else
            {
                reloadRefresh();
                FormManager.createPaForm.Hide();
                FormManager.loginForm.Show();
                MessageBox.Show("Quá thời gian chờ cho phép, vui lòng đăng nhập lại");
            }

        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            FormManager.createPaForm.Hide();
            FormManager.paInDayForm.Show();
        }

        private void FormCreatePatient_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
            reloadRefresh();
            FormManager.createPaForm.Hide();
            FormManager.paInDayForm.Show();
        }

        public void reloadRefresh()
        {
            txtFullname.Text = "";
            rbMale.Checked = false;
            rbFemale.Checked = false;
            txtBirthYear.Text = "";
            txtAddress.Text = "";
        }
    }
}

